The present invention relates to the Universal Serial Bus (USB) and more particularly to devices connected to a processing system through a USB port.
One common use of a data processing system is a point of sale terminal which is used in retail sales to memorialize and track sales transactions. Conventional point of sale terminals include a data processor as well as peripheral and input devices such as a display, keyboard, printer, cash drawer and the like which are provided for each terminal. Such a point of sale terminal may be provided, for example, at each checkout lane in a retail store. Each of these devices may have its own unique address associated with it and this address may be utilized for communications between the data processor and the devices.
Because of the expense of data processing systems it has been found to be advantageous to share a data processing system with two checkout lanes. Expansion of the point of sale terminal to include operation of a cluster of devices for a second checkout lane has conventionally been accomplished by providing a remote expansion station with separate inputs for each device in the expansion cluster and an output to the host data processing system so that the cluster of devices of the second lane may communicate with the data processing system. The output of the remote expansion station is then treated separately by the data processing system so as to separate the expansion cluster of devices from the devices of the first checkout lane. Thus, the separation of the inputs to the data processing system may be maintained such that the addresses of the cluster of devices connected to the remote expansion station would be associated with the second lane.
One difficulty with physically separating the inputs for devices from the first checkout lane with those for the expansion checkout lane is that a separate input generally is required for each expansion lane. Thus, the number of expansion lanes may be limited to the number of expansion inputs for the data processing system. One advantage of such a system, however, is that setup may be straightforward in that a user may readily determine where to connect the devices of the two checkout lanes. However, because the possible connection configurations are limited, the amount of operator intervention which may be needed for setup and configuration may be reduced.
While conventional point of sale terminals may be suitable in many systems, increased processor capabilities may permit additional expansion of the number of checkout lanes which may be serviced by a single data processing system. Thus, a need exists for more flexible expansion of point of sale terminals.
In conventional personal computer systems, the Universal Serial Bus (USB) architecture has been proposed to allow multiple devices to connect to a single data processing system. The USB architecture automatically detects a device being connected and provides a unique address to each device which may then be used to communicate with the device over the common USB connection. Typically, a USB system may be expanded by providing a USB hub which provides USB port replication. A USB hub may be connected to another USB hub and service multiple USB ports. Up to 127 devices may be connected to a data processing system through a USB interface.
While the USB architecture may provide simplified connection of devices to a data processing system, the connected devices typically are treated as individual devices. The addresses of the devices are unique but do not provide information about how to cluster devices to provide expansion.
Accordingly, in light of the above discussion, a need exists for improvements in the expansion of point of sale terminals to allow expansion through a USB port.
The present invention may provide methods, systems and computer program products for segmenting a plurality of Universal Serial Bus (USB) devices connected to a common root hub into clusters. The devices may be segmented based on the connection topology. Such a segmentation may be performed without user intervention to define the clusters by designating a particular port(s) of USB hubs as expansion ports such that a USB hub connected to an expansion port starts a new cluster and may act as a cluster root hub. Devices connected to a cluster root hub may be considered in the same cluster if there is no intervening cluster root hub.
In particular embodiments of the present invention a device topology of the plurality of USB devices connected to the common root hub is obtained. The device topology is traversed to identify a USB hub which is connected to a predefined port, such as the lane/cluster expansion port, of another USB hub as a cluster root hub. USB devices connected to a cluster root hub other than a USB hub connected to the predefined port of another USB hub are identified so as to associate the USB devices with the cluster root hub. The USB devices associated with the same cluster root hub may then be treated as a cluster. In a preferred embodiment, the lane/cluster expansion port is port 1.
In a further embodiment of the present invention, the device topology may be obtained by requesting the device topology via an operating system utility and receiving the device topology from the operating system utility. Furthermore, the USB devices in the same cluster may be communicated with as if the USB devices were components of a single device.
In a still further embodiment of the present invention, the traversal of the topology, and identification of cluster root hubs and treating of devices as a cluster are carried out for the entire device topology so as to define each cluster root hub in the device topology and clusters of USB devices of associated with each cluster route hub.
In a particular embodiment of the present invention, the device topology is traversed in a depth-wise fashion. The topology may be traversed in a depth-wise manner by evaluating devices connected to a device until a device with no further devices connected to it is reached. In an alternative embodiment, the device topology is traversed in a breadth-wise fashion. The topology may be traversed in a breadth-wise fashion by evaluating device characteristics for all devices at a given degree of remoteness from the root hub before devices for the next further degree of remoteness are evaluated.
In yet another embodiment of the present invention, an alias address is associated with each of the USB devices within the cluster so as to provide an address for each of the USB devices within the cluster which identifies the USB device as within the cluster.
In one embodiment of the present invention, the data processing system is a point of sale terminal. Furthermore, the cluster may correspond to expansion checkout lanes such that USB devices in a cluster are treated as a point of sale terminal for a checkout lane. Such USB devices may include a display, a keyboard, a printer, a cash drawer, a magnetic stripe reader and the like.
As will further be appreciated by those of skill in the art, the present invention may be embodied as methods, apparatus/systems and/or computer program products.